
//1578.使绳子变成彩色的最短时间
class Solution {
public:
    int minCost(string colors, vector<int>& neededTime) {
        //将有多余颜色的气球删除，保留连续颜色中移除时间最小的一个
        int n=colors.size();
        int i=0,ret=0;
        while(i<n)
        {
            int start=i;  //记录起始位置
            long sum=0,in_max=0;   //记录所有气球的总花费时间，以及最长花费时间
            while(i<n&&colors[i]==colors[start]) 
            {
                sum+=neededTime[i];
                in_max=max(in_max,(long)neededTime[i]);
                i++;
            }

            if(i-start>1) ret+=sum-in_max;
        }
        return ret;
    }
};